Data streams of production intents

ABSTRACT

A data state manager may include a production intent module to define a production intent, a capability module to identify a number of capabilities of a plurality of media printing devices to which the data state manager is coupled, and a data stream module to, through a plurality of communication links to the media printing devices, stream a plurality of data streams to the plurality of media printing devices in a synchronized manner based on a number of characteristics of the streamed data and the identified capabilities of the media printing devices, with the data streams defining the production intent.

BACKGROUND

A print service provider (PSP) may use digital presses to print avariety of products. The digital presses used to produce the printedproducts may be loaded with a variety of substrates on which text andimages are printed. Digital front ends (DFEs) may be used to convertcustomer print jobs to the submission format of the digital presses andqueue the jobs to the digital presses.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings illustrate various examples of the principlesdescribed herein and are part of the specification. The illustratedexamples are given merely for illustration, and do not limit the scopeof the claims.

FIG. 1 is a block diagram of a data state manager, according to anexample of the principles described herein.

FIG. 2 is a block diagram of a data state manager, according to anexample of the principles described herein.

FIG. 3 is a flowchart showing a method of data management in adistributed production environment using a data state manager, accordingto an example of the principles described herein.

FIG. 4 is a flowchart showing a method of data management in adistributed production environment using a data state manager, accordingto an example of the principles described herein.

FIG. 5 is a flowchart showing a method of data management in adistributed production environment using a data state manager, accordingto an example of the principles described herein.

FIG. 6 is a flowchart showing a method of data management in adistributed production environment using a data state manager, accordingto an example of the principles described herein.

Throughout the drawings, identical reference numbers designate similar,but not necessarily identical, elements. The figures are not necessarilyto scale, and the size of some parts may be exaggerated to more clearlyillustrate the example shown. Moreover, the drawings provide examplesand/or implementations consistent with the description; however, thedescription is not limited to the examples and/or implementationsprovided in the drawings.

DETAILED DESCRIPTION

Data processing and synchronization systems such as a digital front end(DFE) device and associated controllers and protocols used by a printservice provider (PSP) and that use digital presses may be limited intheir capability to support distributed production environments. Evenwhen supporting the representation of complex data structures, thesedigital press environments do not address the desires of producers toslice, re-constitute, target, synchronize, and reproduce specificproduction intents in a manner that is scalable, dynamic, and consistentover time.

Examples described herein provide a system that gives producers of theprinted products the capability to efficiently slice up print datastreams in a most effective manner given the variety of potentialevaluation characteristics, efficiently distribute the data streamacross multiple production devices such as multiple printing presses,and provides the ability to synchronize the data structures as theyprocess on those distributed devices. This provides for state managementof the overall data stream among the multiple printing presses. Further,the examples described herein provide the ability to audit and reproducethose production results such as the printed product as part of asystemic implementation. The production devices such as the digitalprinting presses described herein may be described as a digital printingpress or a composite of a DFE and digital printing press.

The methods described herein provide for the management andsynchronization of a data stream in a distributed production environmentwhere a data structure representing a specific production intent may beprocessed to a plurality of production devices based on metadataembedded within the data structure, characteristics of the finalphysical product itself represented by the data structure or elementswithin the data structure, articulated patterns represented as discretedata segments or data branches within the data structure, the targetcapability of devices in the production environment, the time and/orduration used to fulfill the target production intent, the segment orbranch within the data stream given the selection or configuration ofany constituent of the above elements, or combinations thereof.

Examples described herein provide a data state manager. The data statemanager may include a production intent module to define a productionintent, a capability module to identify a number of capabilities of aplurality of media printing devices to which the data state manager iscoupled, and a data stream module to, through a plurality ofcommunication links to the media printing devices, stream a plurality ofdata streams to the plurality of media printing devices in asynchronized manner based on a number of characteristics of the streameddata and the identified capabilities of the media printing devices, thedata streams defining the production intent.

The data state manager may also include a data segmenting module todivide the production intent into the plurality of data streams witheach data stream being streamed to one of the plurality of mediaprinting devices, and divide at least one of the plurality of datastreams into a plurality of discrete data segments. Further, the datastate manager may include an error detection module to detect errorconditions in the media printing devices, and adapt the data streams toallow recovery of the media printing devices in response to adetermination that at least one of the plurality of media printingdevices has an error.

The data state manager may also include an auditing module to log theproduction intent defined by the production intent module in a memorydevice. Further, the data state manager may include a reconstitutionmodule to implement the logged production intent on the plurality ofmedia printing devices.

Examples described herein may also provide a method of data managementin a distributed production environment using a data state manager. Themethod may include defining a production intent, the production intentcomprising data defining a final printed product to be produced by aplurality of media printing devices, dividing the production intent intothe plurality of data streams with each data stream being streamed toone of the plurality of media printing devices, and streaming theplurality of data streams to the plurality of media printing devices ina synchronous manner based on a number of characteristics of thestreamed data and the identified capabilities of the media printingdevices. The method may also include detecting error conditions in themedia printing devices, and adapting the data streams to re-synchronizethe media printing devices in response to a determination that at leastone of the plurality of media printing devices has an error.

Streaming the plurality of data streams to the plurality of mediaprinting devices in a synchronous manner includes synchronizing the datastreams based on data stream characteristics, device characteristics, orcombinations thereof. The method may also include identifying a numberof capabilities of the plurality of media printing devices. Further, themethod may include dividing at least one of the plurality of datastreams into a plurality of discrete data segments. The method of claim6, comprising logging the production intent defined by the productionintent module in a memory device.

The method may also include determining if a logged production intenthas been requested to be printed. In response to a determination thatthe logged production intent has been requested, reconstituting thelogged production intent on the plurality of media printing devices.

Examples described herein may also provide a computer program productfor data management in a distributed production environment. Thecomputer program product may include a computer readable storage mediumcomprising computer usable program code embodied therewith. The computerusable program code to, when executed by a processor, define aproduction intent, the production intent comprising data defining afinal printed product that is produced by a plurality of media printingdevices, stream a plurality of data streams to a plurality of mediaprinting devices in a synchronous manner based on a number ofcharacteristics of the data streams and the identified capabilities ofthe media printing devices, detect error conditions in the mediaprinting devices, and adapt the data streams to re-synchronize the mediaprinting devices in response to a determination that at least one of theplurality of media printing devices has an error.

The computer program product may include computer usable program codeto, when executed by the processor, divide the production intent intothe plurality of data streams with each data stream being streamed toone of the plurality of media printing devices, and divide at least oneof the plurality of data streams into a plurality of discrete datasegments. The computer program product may include computer usableprogram code to, when executed by the processor, identify the number ofcapabilities of the plurality of media printing devices, identify anumber of characteristics of the data streams, and synchronize the datastreams based on the characteristics of the data streams, thecapabilities of the plurality of media printing devices, or combinationsthereof.

The computer program product of claim 12, comprising computer usableprogram code to, when executed by the processor, log the productionintent defined by the production intent module in a memory device,determine if a logged production intent has been requested to beprinted, and in response to a determination that the logged productionintent has been requested, reconstitute the logged production intent onthe plurality of media printing devices.

As used in the present specification and in the appended claims, theterm “distributed production environment” is meant to be understoodbroadly as a plurality of printing devices that are controlled by a datastate manager.

As used in the present specification and in the appended claims, theterm “production device” is meant to be understood broadly as any deviceused to produce a printed product. For example, the production devicesmay include printing presses, digital printing presses, printingdevices, collating devices, finishing devices, thermal inkjet printingdevices, other printing devices, or combinations thereof.

As used in the present specification and in the appended claims, theterm “production intent” is meant to be understood broadly as any printjob that includes divisible portions that may be sent to a plurality ofproduction devices such as a plurality of printing presses.

Turning now to the figures, FIG. 1 is a block diagram of a data statemanager (100), according to an example of the principles describedherein. The data state manager (100) may include a production intentmodule (115) to define a production intent. As described herein, theproduction intent is any print job that includes divisible portions thatmay be sent to a plurality of production devices such as the mediaprinting devices (150-1, 150-2, 150-n, collectively referred to hereinas 150) communicatively coupled to the data state manager (100).

As depicted in FIG. 1, n number of media printing devices (150) arecommunicatively coupled to the data state manager (100) with n and theassociated ellipsis depicted in FIG. 1 as designating at least aplurality of media printing devices (150) and up to an infinite numberof media printing devices (150). The media printing devices (150) may bewired or wirelessly communicatively coupled to the data state manager(100). The communication links (151-1, 151-2, 151-n, collectivelyreferred to herein as 151) designate not only a transfer of data overthe communicative couplings (151), but also the streaming of data toeach of the media printing devices (150) as a number of separatebranches or portions of a whole data stream from the data state manager(100). The whole of the data stream is divided in to the separatebranches of data that are transmitted over the communication links(151). Thus, the data state manager (100) streams a plurality ofbranches of the data stream to the individual media printing devices(150). In one example, at least one of the branches of the data streammay be further divided into a plurality of segments. In this example,the segments are transferred to the target media printing device (150)by dividing the branch of the streaming data into the number ofsegments, and transmitting the segments individually. Data segmentationis a method of division of a data stream that is intended to improvefile transfer speeds by simultaneously transmitting portions of the datastream sourced from the data state manager (100), and recombining theportions into the single set of data. A data segment is broadly definedas any division of a data stream.

The data state manager (100) may also include a capability module (116)to identify a number of capabilities of each of the plurality of mediaprinting devices (150) to which the data state manager (100) is coupled.The media printing devices (150) may include a number of differentprinting capabilities such as, for example, printing in grayscale,monotone and/or colors, types of colors and color schemes available,printing speeds, printing in simplex and/or duplex, media finishingcapabilities, among other printing device or printing presscapabilities. The portions of the production intent that call for aspecific printing capability or capabilities may be sent to a mediaprinting device (150) that is capable of fulfilling those requestedprint requests.

The data state manager (100) may also include a data stream module (117)to, through the plurality of communication links (151) to the mediaprinting devices (150), stream a plurality of data streams to theplurality of media printing devices (150) in a synchronized manner basedon a number of characteristics of the streamed data and the identifiedcapabilities of the media printing devices (150). The data streamsdefine the production intent and include divided portions of a wholedata set that define the production intent.

The communication links (151) are bidirectional such that data may betransmitted from the media printing devices (150) to the data statemanager (100). Examples of data that may be transmitted from the mediaprinting devices (150) to the data state manager (100) include dataregarding the capabilities of each of the media printing devices (150)as requested by the capability module (116), data regarding the state ofthe media printing devices (150), data regarding the speed at which themedia printing devices (150) are working, data regarding the progress ofa print job, other properties, states, or characteristics of the mediaprinting devices (150), errors that occur within the media printingdevices (150), and combinations thereof.

In one example, the media printing devices (150) may be communicativelycoupled to one another via a number of inter-device communication links(152-1, 152-2, collectively referred to herein as 152). Theseinter-device communication links (152) serve to allow for the mediaprinting devices (150) to coordinate with one another to synchronizetheir individual productions as instructed by the data state manager(100). For example, the media state manager (100) may detect an error inthe first one of the media printing devices (150-1) and instruct theremaining media printing devices (150-2, 150-n) to slow down to allow auser to correct the issue with the first media printing device (150-1)and catch up with its production in order to maintain the synchronousproduction among the media printing devices (150).

FIG. 2 is a block diagram of a data state manager (200), according to anexample of the principles described herein. The example of FIG. 2includes elements similar to those found in the example of FIG. 1 andthe description of these elements may be found in connection with thedescription of FIG. 1 and elsewhere. The data state manager (200) may beimplemented in an electronic device. Examples of electronic devicesinclude servers, desktop computers, laptop computers, personal digitalassistants (PDAs), mobile devices, smartphones, gaming systems, andtablets, among other electronic devices.

The data state manager (200) may be utilized in any data processingscenario including, stand-alone hardware, mobile applications, through acomputing network, or combinations thereof. Further, the data statemanager (200) may be used in a computing network, a public cloudnetwork, a private cloud network, a hybrid cloud network, other forms ofnetworks, or combinations thereof. In one example, the methods providedby the data state manager (200) are provided as a service over a networkby, for example, a third party. In this example, the service maycomprise, for example, the following: a Software as a Service (SaaS)hosting a number of applications; a Platform as a Service (PaaS) hostinga computing platform comprising, for example, operating systems,hardware, and storage, among others; an Infrastructure as a Service(IaaS) hosting equipment such as, for example, servers, storagecomponents, network, and components, among others; application programinterface (API) as a service (APIaaS), other forms of network services,or combinations thereof. The present systems may be implemented on oneor multiple hardware platforms, in which the modules in the system canbe executed on one or across multiple platforms. Such modules can run onvarious forms of cloud technologies and hybrid cloud technologies oroffered as a SaaS (Software as a service) that can be implemented on oroff the cloud. In another example, the methods provided by the datastate manager (200) are executed by a local administrator.

To achieve its desired functionality, the data state manager (200)comprises various hardware components. Among these hardware componentsmay be a number of processors (101), a number of data storage devices(102), a number of peripheral device adapters (103), and a number ofnetwork adapters (104). These hardware components may be interconnectedthrough the use of a number of busses and/or network connections. In oneexample, the processor (101), the data storage device (102), theperipheral device adapter (103), and the network adapter (104) may becommunicatively coupled via a bus (105).

The processor (101) may include the hardware architecture to retrieveexecutable code from the data storage device (102) and execute theexecutable code. The executable code may, when executed by the processor(101), cause the processor (101) to implement at least the functionalityof the methods of the present specification described herein. In thecourse of executing code, the processor (101) may receive input from andprovide output to a number of the remaining hardware units.

The data storage device (102) may store data such as executable programcode that is executed by the processor (101) or other processing device.As will be discussed, the data storage device (102) may specificallystore computer code representing a number of applications that theprocessor (101) executes to implement at least the functionalitydescribed herein. The data storage device (102) may include varioustypes of memory modules, including volatile and nonvolatile memory. Forexample, the data storage device (102) of the present example includesRandom Access Memory (RAM) (106), Read Only Memory (ROM) (107), and HardDisk Drive (HDD) memory (108). Many other types of memory may also beutilized, and the present specification contemplates the use of manyvarying type(s) of memory in the data storage device (102) as may suit aparticular application of the principles described herein. In certainexamples, different types of memory in the data storage device (102) maybe used for different data storage needs. For example, in certainexamples the processor (101) may boot from Read Only Memory (ROM) (107),maintain nonvolatile storage in the Hard Disk Drive (HDD) memory (108),and execute program code stored in Random Access Memory (RAM) (106).

The data storage device (102) may comprise a computer readable medium, acomputer readable storage medium, or a non-transitory computer readablemedium, among others. For example, the data storage device (102) may be,but not limited to, an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system, apparatus, or device, or any suitablecombination of the foregoing. More specific examples of the computerreadable storage medium may include, for example, the following: anelectrical connection having a number of wires, a portable computerdiskette, a hard disk, a random-access memory (RAM), a read-only memory(ROM), an erasable programmable read-only memory (EPROM or Flashmemory), a portable compact disc read-only memory (CD-ROM), an opticalstorage device, a magnetic storage device, or any suitable combinationof the foregoing. In the context of this document, a computer readablestorage medium may be any tangible medium that can contain, or storecomputer usable program code for use by or in connection with aninstruction execution system, apparatus, or device. In another example,a computer readable storage medium may be any non-transitory medium thatcan contain, or store a program for use by or in connection with aninstruction execution system, apparatus, or device.

The hardware adapters (103, 104) in the data state manager (200) enablethe processor (101) to interface with various other hardware elements,external and internal to the data state manager (200) including, forexample, the media printing devices (150). Further, the peripheraldevice adapters (103) may provide an interface to input/output devices,such as, for example, a display device, a mouse, or a keyboard. Theperipheral device adapters (103) may also provide access to otherexternal devices such as an external storage device, a number of networkdevices such as, for example, servers, switches, and routers, clientdevices, other types of computing devices, and combinations thereof. Thenetwork adapter (104) may provide an interface to other computingdevices within, for example, a network, thereby enabling thetransmission of data between the data state manager (200) and otherdevices located within the network.

The data state manager (200) further comprises a number of modules usedin the implementation of the methods described herein. The variousmodules within the data state manager (200) comprise executable programcode that may be executed separately. In this example, the variousmodules may be stored as separate computer program products. In anotherexample, the various modules within the data state manager (200) may becombined within a number of computer program products; each computerprogram product comprising a number of the modules.

The data state manager (200) may include the production intent module(115), the capability module (116), and the data stream module (117), adata segmenting module (118), an error detection module (119), anauditing module (120), and a reconstitution module (121) described inconnection with FIG. 1 and elsewhere herein. The processor (101)executes these modules as instructed and based on the methods describedherein in connection with FIGS. 3 through 5 and the functions of theproduction intent module (115), the capability module (116), and thedata stream module (117) described herein. Specifically, the modules(115, 116, 117, 118, 119, 120, 121) serve to manage and synchronize thedata stream in a distributed production environment where a datastructure representing a specific production intent may be processed toat least two media printing devices (150).

The production intent module (115) may, when executed by the processor(101), defining a production intent including data defining a finalprinted product to be produced by the plurality of the media printingdevices (150). The capability module (116) may, when executed by theprocessor (101), identify a number of capabilities of each of theplurality of media printing devices (150) to which the data statemanager (100) is coupled. Further, the data stream module (117) may,when executed by the processor (101), stream the plurality of datastreams to the plurality of media printing devices in a synchronousmanner based on a number of characteristics of the streamed data and theidentified capabilities of the media printing devices (150). The datasegmenting module (118) may, when executed by the processor (101),divide the production intent into the plurality of data streams witheach data stream being streamed to one of the plurality of mediaprinting devices (150). Specifically, the data segmenting module (118)may divide the production intent into a plurality of data streams witheach data stream being streamed to one of the plurality of mediaprinting devices, and divide at least one of the plurality of datastreams into a plurality of discrete data segments.

The error detection module (119) may, when executed by the processor(101), detect error conditions in the media printing devices (150) andrequest updates regarding error states of the media printing devices(150) at any interval or any number of times during the operations ofthe media printing devices (150). The error detection module (119) mayalso, when executed by the processor (101), adapt the data streams toallow recovery of the media printing devices (150) in response to adetermination that at least one of the plurality of media printingdevices has an error.

The auditing module (120) may, when executed by the processor (101),audit and log the production intent defined by the production intentmodule (115) in the memory device (102) for later additional orderivative executions of the production intent. Further, thereconstitution module (121) may, when executed by the processor (101),reconstitute logged production intents on the plurality of mediaprinting devices (150).

FIG. 3 is a flowchart showing a method (300) of data management in adistributed production environment using the data state manager (100,200, collectively referred to herein as 100), according to an example ofthe principles described herein. The method (300) may include defining(block 301) a production intent. As described herein, the productionintent may include data defining a final printed product to be producedby a plurality of the media printing devices (150). The productionintent may be obtained from a separate source including, for example, aclient who is requesting a print service provider (PSP) to complete theproduction intent. In another example, the production intent may bedeveloped and/or provided by the PSP.

The method (300) may also include dividing (block 302) the productionintent into the plurality of data streams with each data stream beingstreamed to one of the plurality of media printing devices (150). In oneexample, the data segmenting module (118) may be executed by theprocessor (101) of the data state manager (100) to divide (block 302)the production intent into the plurality of data streams. Division(block 302) of the production intent may be based on the logicaldivisions of the production intent, meta data embedded within the datastructure of the production intent, characteristics of the finalto-be-printed physical product itself represented by the data structureor elements within the data structure, articulated patterns representedas discrete data segments or data branches within the data structure,the capabilities of the media printing devices (150) within theproduction environment, the time and/or duration used to fulfill thetarget production intent, and combinations thereof. The capabilities ofthe media printing devices (150) may be detected and determined byexecution of the capability module (116).

The method may also include streaming (block 303) the plurality of datastreams to the plurality of media printing devices in a synchronousmanner based on a number of characteristics of the streamed data and theidentified capabilities of the media printing devices (150). The datastreams are transmitted to the media print devices (150) via thecommunication links (151).

Error conditions may be detected (block 304) in the media printingdevices (150) by executing the data stream module (117) and errordetection module (119) that requests updates at any interval. As mayoccur, any one or multiple ones of the media printing devices (150) mayexperience an error in printing. These errors may include the depletionof printing resources such as print media or printing fluids (e.g.,ink), a fault in the mechanical systems within the media printingdevices (150), a communication error between the data state manager(100) and any number of the media printing devices (150), or other typesof errors that may exist within a distributed production environment. Inresponse to a determination that at least one of the plurality of mediaprinting devices (150) has an error, the method may include adapting(block 305) the data streams to re-synchronize the media printingdevices (150). Re-synchronization of the media printing devices (150)may include speeding up the media printing device(s) (150) thatexperienced the error, slowing down the media printing device(s) (150)that did not experience an error, and combinations thereof. The datastate manager (100), executing the data stream module (117), mayre-synchronize the media printing devices (150).

FIG. 4 is a flowchart showing a method (400) of data management in adistributed production environment using the data state manager (100),according to an example of the principles described herein. Block 401 ofFIG. 4 is similar to block 301 of FIG. 3, and the method (400) mayinclude identifying (block 402) a number of the capabilities of theplurality of media printing devices (150). This may be performed byexecuting the capability module (116).

Block 403 of FIG. 4 is similar to block 302 of FIG. 3, and the method(400) may include dividing (block 404) at least one of the plurality ofdata streams into a plurality of discrete data segments. Dividing (block404) the data streams into the data segments provides for an improvementin file transfer speeds by simultaneously transmitting portions of thedata stream sourced from the data state manager (100), and recombiningthe portions into the single set of data.

Blocks 405 through 407 of FIG. 4 are similar to blocks 303 through 305of FIG. 3. The data stream module (117) and auditing module (120) may beexecuted by the processor (101) of the data state manager (100) to log(block 408) the production intent defined by the production intentmodule (115) in the memory device (102). In this manner, the productionintent may be stored for a later execution of the production intent. Inone example, the production intent may be modified or supplemented, andstored in that modified and/or supplemented state for later execution.

FIG. 5 is a flowchart showing a method (500) of data management in adistributed production environment using a data state manager, accordingto an example of the principles described herein. The method (500) ofFIG. 5 may include determining (block 501) whether a logged productionintent has been requested to be printed. In response to a determinationthat a logged production intent is to be printed (block 501,determination YES), the processor (101), executing the production intentmodule (115) and the reconstitution module (121), may reconstitute(block 502) the logged production intent on the plurality of mediaprinting devices (150). However, in response to a determination that alogged production intent is not to be printed (block 501, determinationNO), the processor (101), executing the production intent module (115),may define (block 503) a production intent in a similar manner asdescribed herein in connection with block 401 of FIG. 4. Blocks 504through 508 of FIG. 5 proceed as similar to blocks 402 and 405 through408, respectively, and their description is provided herein inconnection with FIG. 4 and elsewhere. Thus, the method (500) may includeidentifying (block 504) a number of the capabilities of the plurality ofmedia printing devices (150), and streaming (block 505) the plurality ofdata streams to the plurality of media printing devices in a synchronousmanner. Error conditions may be detected (block 506) in the mediaprinting devices (150) by executing the data stream module (117), andthe data streams may be adapted (block 507) to re-synchronize the mediaprinting devices (150). The data stream module (117) may be executed bythe processor (101) of the data state manager (100) to log (block 508)the production intent defined by the production intent module (115) inthe memory device (102).

FIG. 6 is a flowchart showing a method (600) of data management in adistributed production environment using a data state manager (100),according to an example of the principles described herein. The methodof FIG. 6, and any method described herein may be implemented as acomputer program product. Thus, each block of the flowchartillustrations and block diagrams, and combinations of blocks in theflowchart illustrations and block diagrams, may be implemented bycomputer usable program code. The computer usable program code may beprovided to the processor (FIG. 2, 101) of the data state manager (100)to produce a machine, such that the computer usable program code, whenexecuted via the processor (101), implements the functions or actsspecified in the flowchart and/or block diagram block or blocks of FIGS.3 through 6. In one example, the computer usable program code may beembodied within a computer readable storage medium; the computerreadable storage medium being part of the computer program product. Inone example, the computer readable storage medium is a non-transitorycomputer readable medium as described herein in connection with FIG. 2.

The method (600) may include defining (block 601) a production intent.As described herein, the production intent may include data defining afinal printed product to be produced by a plurality of the mediaprinting devices (150). The production intent may be obtained from aseparate source including, for example, a client who is requesting aprint service provider (PSP) to complete the production intent. Inanother example, the production intent may be developed and/or providedby the PSP. The method (600) streaming (block 602) the plurality of datastreams to the plurality of media printing devices in a synchronousmanner based on a number of characteristics of the streamed data and theidentified capabilities of the media printing devices (150). The datastreams may be adapted (block 507) to re-synchronize the media printingdevices (150). At block 603, error conditions may be detected in themedia printing devices (150) by executing the data stream module (117),and the data streams may be adapted (block 604) to re-synchronize themedia printing devices (150) as similarly described above in connectionwith blocks 506 and 507 of FIG. 5.

The specification and figures describe a data state manager. The datastate manager may include a production intent module to define aproduction intent, a capability module to identify a number ofcapabilities of a plurality of media printing devices to which the datastate manager is coupled, and a data stream module to, through aplurality of communication links to the media printing devices, stream aplurality of data streams to the plurality of media printing devices ina synchronized manner based on a number of characteristics of thestreamed data and the identified capabilities of the media printingdevices, the data streams defining the production intent. This datastate manager and its associated methods provide a single device thatprocesses a data stream for consumption by a plurality of media printingdevices, divide, process, log and reconstitute production intents acrossat least two synchronized media printing devices.

The preceding description has been presented to illustrate and describeexamples of the principles described. This description is not intendedto be exhaustive or to limit these principles to any precise formdisclosed. Many modifications and variations are possible in light ofthe above teaching.

What is claimed is:
 1. A data state manager, comprising: a productionintent module to define a production intent; a capability module toidentify a number of capabilities of a plurality of media printingdevices to which the data state manager is coupled; and a data streammodule to, through a plurality of communication links to the mediaprinting devices, stream a plurality of data streams to the plurality ofmedia printing devices in a synchronized manner based on a number ofcharacteristics of the streamed data and the identified capabilities ofthe media printing devices, the data streams defining the productionintent.
 2. The data state manager of claim 1, comprising a datasegmenting module to: divide the production intent into the plurality ofdata streams with each data stream being streamed to one of theplurality of media printing devices; and divide at least one of theplurality of data streams into a plurality of discrete data segments. 3.The data state manager of claim 1, comprising an error detection moduleto: detect error conditions in the media printing devices; and adapt thedata streams to allow recovery of the media printing devices in responseto a determination that at least one of the plurality of media printingdevices has an error.
 4. The data state manager of claim 1, comprisingan auditing module to log the production intent defined by theproduction intent module in a memory device.
 5. The data state managerof claim 4, comprising a reconstitution module to implement the loggedproduction intent on the plurality of media printing devices.
 6. Thedata state manager of claim 1, further comprising a number ofinter-device communication links disposed between the plurality of mediaprinting capacities.
 7. A method of data management in a distributedproduction environment using a data state manager, comprising: dividinga print job into a plurality of data streams with each data stream beingstreamed to one of a plurality of media printing devices; streaming theplurality of data streams to the plurality of media printing devices ina synchronous manner based on a number of characteristics of thestreamed data and identified capabilities of the media printing devices;detecting error conditions in any of the media printing devices; andadjusting the data streams in response to a determination that at leastone of the plurality of media printing devices has an error.
 8. Themethod of claim 7, wherein streaming the plurality of data streams tothe plurality of media printing devices in a synchronous mannercomprises synchronizing the data streams based on data streamcharacteristics or device characteristics.
 9. The method of claim 7,comprising, in advance of accepting the print job, identifying a numberof capabilities of the plurality of media printing devices to which thedata state manager is connected.
 10. The method of claim 7, comprisingdividing at least one of the plurality of data streams into a pluralityof discrete data segments.
 11. The method of claim 7, comprising loggingthe production intent defined by the production intent module in amemory device.
 12. The method of claim 11, comprising: determining if alogged production intent has been requested to be printed; in responseto a determination that the logged production intent has been requested,reconstituting the logged production intent on the plurality of mediaprinting devices.
 13. The method of claim 7, wherein adapting the datastreams to re-synchronize the media printing devices comprises speedingup a media printing device which experienced an error.
 14. The method ofclaim 7, wherein adapting the data streams to re-synchronize the mediaprinting devices comprises slowing down a media printing device whichdid not experience an error.
 15. The method of claim 7, wherein dividingthe print job into the plurality of data streams is based on a durationto print the print job.
 16. A computer program product for datamanagement in a distributed production environment, the computer programproduct comprising: a non-transitory computer readable storage mediumcomprising computer usable program code embodied therewith, the computerusable program code to, when executed by a processor: receive data for aproduction intent, the production intent comprising data defining afinal printed product that is produced by a plurality of media printingdevices; divide the production intent into a plurality of data streamswherein: a data stream comprises a divided portion of a data set thatdefines the production intent; and each data stream is to be streamed toone of the plurality of media printing devices; stream the plurality ofdata streams to a plurality of media printing devices in a synchronousmanner based on a number of characteristics of the data streams andpreviously identified capabilities of the media printing devices,wherein portions of the production intent which call for a specificprinting capability are streamed to a media printing device with anassociated capability; detect error conditions in the media printingdevices; and adjust the data streams in response to a determination thatat least one of the plurality of media printing devices has an error.17. The computer program product of claim 16, comprising computer usableprogram code to, when executed by the processor: divide at least one ofthe plurality of data streams into a plurality of discrete datasegments.
 18. The computer program product of claim 16, comprisingcomputer usable program code to, when executed by the processor:identify a number of characteristics of the data streams; andsynchronize the data streams based on the characteristics of the datastreams or the capabilities of the plurality of media printing devices.19. The computer program product of claim 16, comprising computer usableprogram code to, when executed by the processor: log the productionintent defined by the production intent module in a memory device;determine if a logged production intent has been requested to beprinted; and in response to a determination that the logged productionintent has been requested, reconstitute the logged production intent onthe plurality of media printing devices.
 20. The computer programproduct of claim 16, wherein adapting the data streams to re-synchronizethe media printing devices comprises instructing media printing deviceswhich have not experienced an error to slow down to allow for action ona media printing device which experienced an error.